<?php

class LavadorasController extends AppController {

    public $name = 'Lavadoras';
    public $uses = array('Lavadora', 'Marca', 'Modelo', 'Tipo',);
    public $helpers = array('Html', 'Form',);
    public $components = array('Util',);

    public function index() {
        $this->Lavadora->recursive = 2;
        $perfil_id = $this->Util->id_decode($this->Session->read('perfil_id'));
        $usuario_id = (in_array($perfil_id, array(1, 3))) ? 1 : $this->Util->id_decode($this->Session->read('usuario_id'));
        $this->set('listado', $this->Lavadora->find('all', array('conditions' => array('Lavadora.estatus >' => 0, 'Lavadora.usuario_id' => $usuario_id), 'order' => array('Lavadora.codigo'))));
        $this->set('estados', $this->Util->estadosLavadoras());
    }

    public function nuevo() {
        if ($this->request->is('post')) {
            $perfil_id = $this->Util->id_decode($this->Session->read('perfil_id'));
            $usuario_id = $this->Util->id_decode($this->Session->read('usuario_id'));
            $this->request->data['Lavadora']['usuario_id'] = (in_array($perfil_id, array(1, 3))) ? 1 : $usuario_id;
                    
            if ($this->Lavadora->saveAssociated($this->request->data)) {
                $this->Session->setFlash('Registro Guardado', 'default', array('class' => 'success'));
                return $this->redirect(array('action' => 'index'));
            } else
                $this->Session->setFlash('Ocurri&oacute; un error, intente nuevamente', 'default', array('class' => 'error-message'));
        }
        //$this->set('estados', $this->Util->estados());
        $this->set('listadoMarcas', $this->Marca->find('list', array('fields' => array('Marca.id', 'Marca.nombre'), 'conditions' => array('Marca.estatus' => 1), 'order' => array('Marca.nombre'))));
        $this->set('listadoTipos', $this->Tipo->find('list', array('fields' => array('Tipo.id', 'Tipo.nombre'), 'conditions' => array('Tipo.estatus' => 1), 'order' => array('Tipo.nombre'))));
    }

    public function editar($id = null) {
        $id = $this->Util->id_decode($id);
        $this->Lavadora->recursive = 2;
        $data = $this->Lavadora->findById($id);
        
        if (!$data) {
            $this->Session->setFlash('Registro Inv&aacute;lido', 'default', array('class' => 'error-message'));
            return $this->redirect(array('action' => 'index'));
        }

        if ($this->request->data) {
            $this->Lavadora->id = $id;
            $this->request->data['Lavadora']['id'] = $id;
            if ($this->Lavadora->save($this->request->data)) {
                $this->Session->setFlash('Registro Actualizado', 'default', array('class' => 'success'));
                return $this->redirect(array('action' => 'index'));
            } else
                $this->Session->setFlash('Ocurri&oacute; un error, intente nuevamente', 'default', array('class' => 'error-message'));
        } else {
            $data['Lavadora']['id'] = $this->Util->id($id);
            $this->request->data = $data;
            $this->set('estados', $this->Util->estadosLavadoras());
            $this->set('listadoMarcas', $this->Marca->find('list', array('fields' => array('Marca.id', 'Marca.nombre'), 'conditions' => array('Marca.estatus' => 1), 'order' => array('Marca.nombre'))));
            $this->set('listadoModelos', $this->Modelo->find('list', array('fields' => array('Modelo.id', 'Modelo.nombre'), 'conditions' => array('Modelo.estatus' => 1), 'order' => array('Modelo.nombre'))));
            $this->set('listadoTipos', $this->Tipo->find('list', array('fields' => array('Tipo.id', 'Tipo.nombre'), 'conditions' => array('Tipo.estatus' => 1), 'order' => array('Tipo.nombre'))));
        }
    }

    function eliminar($id) {
        if (!$this->request->is('post')) {
            throw new MethodNotAllowedException();
        }
        $id = $this->Util->id_decode($id);
        $this->request->data['Lavadora']['id'] = $id;
        $this->request->data['Lavadora']['estatus'] = 0;
        if ($this->Lavadora->save($this->request->data)) {
            $this->Session->setFlash('Registro Eliminado', 'default', array('class' => 'success'));
            return $this->redirect(array('action' => 'index'));
        }
    }

}
